/**
* <copyright>
* Copyright 1997-2002 InfoEther, LLC
* under sponsorship of the Defense Advanced Research Projects Agency
(DARPA).
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the Cougaar Open Source License as published
by
* DARPA on the Cougaar Open Source Website (www.cougaar.org).
*
* THE COUGAAR SOFTWARE AND ANY DERIVATIVE SUPPLIED BY LICENSOR IS
* PROVIDED 'AS IS' WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS OR
* IMPLIED, INCLUDING (BUT NOT LIMITED TO) ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND WITHOUT
* ANY WARRANTIES AS TO NON-INFRINGEMENT. IN NO EVENT SHALL COPYRIGHT
* HOLDER BE LIABLE FOR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL
* DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE OF DATA OR PROFITS,
* TORTIOUS CONDUCT, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THE COUGAAR SOFTWARE.
* </copyright>
*/
package test.net.sourceforge.pmd;
import junit.framework.TestCase;
import net.sourceforge.pmd.CommandLineOptions;
import net.sourceforge.pmd.renderers.CSVRenderer;
import net.sourceforge.pmd.renderers.EmacsRenderer;
import net.sourceforge.pmd.renderers.HTMLRenderer;
import net.sourceforge.pmd.renderers.IDEAJRenderer;
import net.sourceforge.pmd.renderers.TextRenderer;
import net.sourceforge.pmd.renderers.VBHTMLRenderer;
import net.sourceforge.pmd.renderers.XMLRenderer;
import java.io.InputStreamReader;
public class CommandLineOptionsTest extends TestCase {
public void testDebug() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset", "-debug"});
assertTrue(opt.debugEnabled());
}
public void testTargetJDKVersion() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset"});
assertFalse(opt.jdk13());
opt = new CommandLineOptions(new String[] {"file", "format", "ruleset", "-jdk13"});
assertTrue(opt.jdk13());
}
public void testShortNames() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset", "-shortnames"});
assertTrue(opt.shortNamesEnabled());
}
public void testEncoding() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset"});
assertTrue(opt.getEncoding().equals((new InputStreamReader(System.in)).getEncoding()));
opt = new CommandLineOptions(new String[] {"file", "format", "ruleset", "-encoding", "UTF-8"});
assertTrue(opt.getEncoding().equals("UTF-8"));
}
public void testInputFileName() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset"});
assertEquals("file", opt.getInputFileName());
}
public void testReportFormat() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset"});
assertEquals("format", opt.getReportFormat());
}
public void testRulesets() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "format", "ruleset"});
assertEquals("ruleset", opt.getRulesets());
}
public void testCommaSeparatedFiles() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file1,file2,file3", "format", "ruleset"});
assertTrue(opt.containsCommaSeparatedFileList());
}
public void testNotEnoughArgs() {
try {
new CommandLineOptions(new String[] {"file1", "format"});
fail("Should have thrown an exception when only array contained < 3 args");
} catch (RuntimeException re) {
// cool
}
}
public void testNullArgs() {
try {
new CommandLineOptions(null);
fail("Should have thrown an exception when null passed to constructor");
} catch (RuntimeException re) {
// cool
}
}
public void testRenderer() {
CommandLineOptions opt = new CommandLineOptions(new String[] {"file", "xml", "ruleset"});
assertTrue(opt.createRenderer() instanceof XMLRenderer);
opt = new CommandLineOptions(new String[] {"file", "html", "ruleset"});
assertTrue(opt.createRenderer() instanceof HTMLRenderer);
opt = new CommandLineOptions(new String[] {"file", "text", "ruleset"});
assertTrue(opt.createRenderer() instanceof TextRenderer);
opt = new CommandLineOptions(new String[] {"file", "emacs", "ruleset"});
assertTrue(opt.createRenderer() instanceof EmacsRenderer);
opt = new CommandLineOptions(new String[] {"file", "csv", "ruleset"});
assertTrue(opt.createRenderer() instanceof CSVRenderer);
opt = new CommandLineOptions(new String[] {"file", "vbhtml", "ruleset"});
assertTrue(opt.createRenderer() instanceof VBHTMLRenderer);
opt = new CommandLineOptions(new String[] {"file", "ideaj", "ruleset"});
assertTrue(opt.createRenderer() instanceof IDEAJRenderer);
try {
opt = new CommandLineOptions(new String[] {"file", "fiddlefaddle", "ruleset"});
opt.createRenderer();
} catch (IllegalArgumentException iae) {
// cool
}
try {
opt = new CommandLineOptions(new String[] {"file", "", "ruleset"});
opt.createRenderer();
} catch (IllegalArgumentException iae) {
// cool
}
}
}